| |
Объект Application, свойства, методы и события
Ниже для справки приведены самые важные свойства, методы и события объекта Application:
- ActiveDocument - возвращает объект активного документа в данном экземпляре Word. Используется очень активно, обычно без упоминания объекта Application, например:
- ActiveDocument.Save
Это свойство доступно только для чтения, поэтому, чтобы сделать какой-нибудь документ активным, придется вызывать для его объекта метод Activate().
- ActivePrinter - позволяет получить или настроить активный принтер в ходе работы программы. Также используется очень активно, например, если результаты работы вашего приложения необходимо печатать на определенном сетевом принтере.
- AutomationSecurity - определяет уровень безопасности при программном открытии файлов. По умолчанию установлено значение msoAutomationSecurityLow, что значит - открывать со включенными макросами. Можно также использовать значения msoAutomationSecurityForceDisable - отключить макросы и msoAutomationSecurityByUI - то, что настроено на графическом интерфейсе.
- BackgroundPrintingStatus - сколько заданий Word стоит в очереди на печать.
- Browser - свойство, которое возвращает объект Browser - тот малозаметный набор из трех кнопок, который прячется под вертикальной полосой прокрутки. С программной точки зрения интересно его свойство Target, которое может принимать одно из 12 значений (комментарий, сноска, таблица, рисунок, заголовок, страница и т.п.). Затем при помощи методов Next() и Previous() для этого объекта мы можем перемещаться между этими элементами.
- Build - возвращает версию и номер сборки Word. Очень полезно для проверки на совместимость, если ваше приложение работает только под определенными версиями Word.
- CapsLock - при помощи этого свойства можно проверить, включен ли режим CapsLock на клавиатуре. Изменить этот режим при помощи этого свойства нельзя - для этого есть другие средства. Аналогично работает свойство NumLock.
- Caption - позволяет заменить слово Microsoft Word в заголовке окна на другой текст, например, "Мое приложение".
- CheckLanguage - определяет ли Word в автоматическом режиме язык, на котором производится ввод текста. Если в системе установлено несколько языков ввода, то по умолчанию проверяет. При помощи этого свойства можно изменить режим работы Word.
- COMAdIns - позволяет получить ссылку на коллекцию загруженных COM Ad ins - встраиваемых в Word приложений, построенных по технологии COM. Очень удобно для проверок перед обращением к данному встраиваемому приложению.
- CustomizationContext - свойство, которое позволяет указать шаблон или документ, на который будут распространяться внесенные вами изменения в меню, панели инструментов и клавиатурные комбинации. Например, код вида
CustomizationContext = NormalTemplate
говорит о том, что все изменения, которые вы будете вносить начиная с этого момента, будут сохраняться в шаблоне Normal.Dot (и, таким образом, будут применяться во всем документам).
- Dialogs - возвращает коллекцию Dialogs, представляющую из себя все возможные диалоговые окна Word. При помощи этой "ветви" объектной модели Word вы можете открыть любое из сотен диалоговых окон Word и определить действия, которые будут предприняты при выборе пользователем тех или иных параметров в данном диалоговом окне. К сожалению, эта "ветвь" очень плохо документирована и при попытке использовать объекты диалоговых окон приходится заниматься самостоятельными исследованиями (при помощи макрорекордера и окна Locals), чтобы определить нужные свойства и их значения. По моему опыту, обычно проще создать свою форму VBA, которая будет выполнять необходимые действия, чем заниматься такой исследовательской работой. Пример использования диалогового окна открытия файла может выглядеть так:
Dim oDlg As Dialog
Set oDlg = Application.Dialogs(wdDialogFileOpen)
If oDlg.Display = -1 Then
MsgBox "Вы выбрали файл: " & _
Application.Options.DefaultFilePath(wdCurrentFolderPath) & "\" & oDlg.Name
End If
Для диалоговых окон, которые предназначены для работы с файлами, в объекте Application предусмотрено отдельное свойство FileDialog, возвращающее одноименный объект.
- DefaultSaveFormat - определяет формат сохранения файлов Word по умолчанию (тот, который будет предлагаться пользователь в диалоговых окнах Save As). Можно настроить на сохранение в формате обычного текста, текста Unicode, RTF и т.п.
- DisplayAlerts - очень важное свойство. Оно позволяет подавить вывод ошибок и диалоговых окон при работе макросов и приложений VBA. Во многих ситуациях без него не обойтись. Особенно часто прибегать к этому свойству требуется, когда необходимо в ходе работы программы что-нибудь удалить или закрыть без сохранения.
- DisplayAutoCompleteTips - включить/отключить подсказки для автозавершения текста. Чаще всего необходимо отключить. Остальные свойства Display: очевидны и поэтому здесь рассматриваться не будут.
- Documents - видимо, самое важное свойство. Возвращает коллекцию документов. Подробнее про эту коллекцию и работу с документами - ниже.
- EmailOptions - возвращает очень сложный и насыщенный свойствами объект EmailOptions, который используется для настройки Word как редактора почтовых сообщений в Outlook.
- EnableCancelKey - это свойство определяет, сможет ли пользователь прервать выполнение макроса при нажатии клавиш <Ctrl>+<Break>. Если установить для этого свойства значение WdCancelDisabled, то это приведет к тому, что макрос, вошедших в бесконечный цикл, можно будет закрыть только вместе с Word - через Task Manager.
- FeatureInstall - еще одно свойство, которое позволит не раздражать пользователя попытками Office доустановить еще не установленные компоненты. Для этого нужно установить это свойство в значение msoFeatureInstallNone.
- FileDialog - возвращает объект FileDialog, то есть окно выбора файла, каталога, открытия файла или сохранения. Для открытия этого окна необходимо воспользоваться методом Show() этого объекта.
- FileSearch - возвращает объект FileSearch, который может использоваться для поиска файлов по определенным параметрам.
- International - еще одно очень важное свойство. Возвращает информацию о текущих региональных настройках - даты, времени, валюты, отображения чисел, локализации версии Word и т.п.
- IsObjectValid - очень удобное свойство для всевозможных проверок. Проверяет, существует ли еще объект, к которому мы хотим обратиться. Позволяет уберечься от ошибок, когда, к примеру, документ или объект в документе был удален пользователем.
- KeyBindings - очень удобное во многих ситуациях свойство. Оно позволяет вернуть коллекцию KeyBindings - привязок клавиатурных комбинаций. Говоря проще, при помощи этого объекта и подобъектов вы можете назначить любую команду Word или любой макрос любому сочетанию клавиш (в том числе и сочетаниям, уже занятым служебными командами, например, <Alt>+<F4>). Общая последовательность действий при этом выглядит так:
- определяем CustomizationContext - то есть где будут сохраняться наши изменения. Варианты: шаблон normal.dot, текущий документ, или шаблон, прикрепленный к текущему документу.
- При помощи метода Application.BuildKeyCode() определяем цифровой код для нашей клавиатурной комбинации
- При помощи метода KeyBindings.Add() добавляем новое назначение, при этом определяем все необходимые параметры.
Например, чтобы по нажатию клавиш <Alt>+<D> у нас запускался макрос DataLoad() во всех документах, можно выполнить следующий код:
CustomizationContext = NormalTemplate
Application.KeyBindings.Add wdKeyCategoryMacro, "Normal.NewMacros.DataLoad", _
BuildKeyCode(wdKeyAlt, wdKeyD)
- Language - еще одно свойство, которое позволяет определить, стоит ли на компьютере пользователя локализованная версия Word (точнее, определяется язык пользовательского интерфейса). Для русского языка будет возвращаться значение 1049, для английского - 1033. Более подробную информацию (о языке помощи, языке программы установки и т.п.) можно получить при помощи свойства LanguageSettings.
- MacroContainer - очень полезное свойство для программистов. Позволяет в ходе выполнения определить, откуда был запущен текущий программный код (обычно проверяются два варианта - normal.dot или обычный текущий документ).
- NewDocument - одна из возможностей создать новый документ Word. Возвращает объект NewDocument. Для создания нового документа используется метод Application.NewDocument.Add().
- NormalTemplate - свойство очень важное! Позволяет получить ссылку на объект Template, представляющий normal.dot - для внесения в него изменений.
- Option - возвращает объект Option с огромным количеством свойств. Через этот объект программным способом можно настроить значения со всех вкладок, доступных на графическом экране через меню Сервис -> Параметры.
- Path - возвращает путь к программным файлам Word на диске.
- PrintPreview - перейти в режим предпросмотра текущего документа или проверить, находимся ли мы в этом режиме. Очень удобно для показа документа пользователю или для реализации своей процедуры печати.
- ScreenUpdating - свойство, которое позволяет запретить перерисовку экрана (если установить его значение в false). Обычно используется для ускорения работы процедур, которые выводят что-то на экран.
- Selection - еще одно важнейшее свойство. Возвращает объект Selection - упрощенно говоря, место, в котором находится указатель вставки. Подробнее о нем - в следующих разделах.
- ShowStartupDialog - показывать ли нет Task Pane при запуске Word. Чаще всего используется для отключения показа. Есть еще несколько свойств Show:, значения которых очевидны.
- SpecialMode - проверить, не находится ли Word в специальном режиме копирования и вставки (для перехода в этот режим нужно выделить текст и нажать <F2> или <Shift>+<F2>), а потом переместить курсор и нажать <Enter>).
- StartUpPath - возможность просмотреть/определить путь к каталогу автозапуска. Те шаблоны и встраиваемые приложения, которые находятся в этом каталоге, Word при запуске открывает автоматически. По умолчанию каталог автозапуске находится в профиле пользователя. Путь к нему выглядит как application data\microsoft\word\startup.
- StatusBar - еще одно очень полезное свойство. Позволяет вывести текст в Status Bar - строке состояния, то есть строке в нижней части окна приложения, в которой выводится информация о страницах, столбцах, языке, режимах работы и т.п.
- System - возвращает одноименный объект System, предназначенный для получения информации из операционной системы (региональный настройки, тип курсора мыши, разрешение экрана, тип процессора и т.п.). Позволяет также подключать сетевые диски и запускать приложение Microsoft System Information.
- Tasks - возвращает одноименную коллекцию Tasks с объектами Task, представляющими все работающие в системе процессы. При помощи этих объектов можно программным способом найти работающее в системе приложение и что-нибудь с ним сделать (сделать видимым или невидимым, активизировать, закрыть, передать в его окно сообщение Windows - как при работе с Windows API и т.п.), Опытные разработчики активно используют этот набор объектов для работы с внешними приложениями. Запускать внешние приложения лучше всего при помощи специального объекта Shell, о котором будет рассказано ниже.
- UserControl - очень важное свойство (оно есть и в Excel). Это свойство позволяет определить как именно был запущен Word - пользователем вручную или программным образом. На основе этого можно, например, сделать вывод, нужно ли его программным образом закрывать.
- UserInitials и UserName - возможность получить или определить информацию об инициалах или имени пользователя. Инициалы используются в исправлениях, а имя пользователя - в свойствах документа.
- VBE - это свойство возвращает недокументированный, но очень интересный объект VBE, представляющий редактор Visual Basic.
- Version - свойство возвращает версию Word (менее подробную, чем Build). Для Word 2003 значение этого свойства - 11.0).
- Visible - позволяет спрятать окно Microsoft Word. Word убирается очень качественно - он исчезает и из рабочего стола, и из панели задач.
- Windows - возвращает информацию об одноименной коллекции Windows, представляющей объекты окон документов Word. Эта коллекция также используется очень часто.
- WindowsState - позволяет свернуть/развернуть/восстановить окно Word.
Самые важные методы объекта Application:
- Activate() - просто активизировать окно Word с текущим документом. Обычно нужно активизировать определенный документ, поэтому этот метод используется для объекта Document.
- BuildKeyCode() - позволяет узнать уникальный номер для клавиатурной комбинации в Word. Пример применения этого метода приведен чуть выше при рассмотрении свойства Application.KeyBindings.
- ChangeFileOpenDirectory() - этот метод позволяет изменить каталог, который по умолчанию открывает Word для работы с документами (по умолчанию, конечно, "Мои документы";
- CheckGrammar() и CheckSpelling() - позволяет проверить грамматику и орфографию для передаваемых символьных значений. Чаще используются аналогичные методы для объектов Document и Range.
- CleanString() - очень полезный метод. Позволяет "чистить" передаваемое символьное значение (полученное, например, от объектов Selection или Range) от специальных символов Word и превращать их в обычный текст - как будто он был набран в Блокноте.
- DefaultWebOptions() - возвращает одноименный объект, при помощи которого можно определить множество свойств, используемых при сохранении документа Word в формате HTML (кодировка, работа с изображениями, CSS, с какими броузерами обеспечивать совместимость и т.п.)
- GoBack() - этот метод обеспечивает переход на последнее место редактирования в документе. Word сохраняет с документом три последние точки редактирования, так что открыть последний документ в Word и перейти на точку, где вы остановились, можно очень просто:
RecentFiles(1).Open
Application.GoBack
Метод GoForward() обеспечивает переход вперед по точкам сохранения.
- KeyBoard() - очень полезный метод. Позволяет программным способом переключать раскладку клавиатуры в Word, уберегая таким образом пользователей от ошибок. Переключение на русский выглядит как
Application.Keyboard 1049
а на английский -
Application.Keyboard 1033
Если этому методу ничего не передавать, он вернет текущую раскладку клавиатуры.
- KeyString() - метод, обратный BuildKeyCode. Тот метод возвращал уникальный идентификатор клавиатурной комбинации, а этот - возвращает клавиатурную комбинацию для данного уникального идентификатора;
- ListCommands() - команда, не похожие на другие. Она создает новый документ и выводит в нем в виде таблицы справочник по командам и клавиатурным комбинациям Word - как стандартным, так и назначенным вами.
- OnTime() - очень интересный метод. Он позволяет выполнить макрос Word либо в указанное вами время, либо по прошествии какого-то времени. В Word одновременно может работать только один таймер. При помощи этого метода можно выполнять ресурсоемкие операции в автоматическом режиме.
- OrganizerCopy() - еще один полезный метод. Позволяет скопировать макрос, панель инструментов, запись автотекста или стиль между документами. Для объекта Application предусмотрены также методы с самообъясняющими OrganizerDelete() и OrganizerRename().
- PrintOut() - метод, который принимает огромное количество параметров и позволяет вывести на печать весь документ или его часть.
- Quit() - метод, который используется, видимо, чаще всех. Позволяет закрыть Word с сохранением или без сохранения документов.
- Repeat() - просто повторить последнюю выполненную команду указанное вами количество раз.
- ResetIgnoreAll() - снять метку со всех участков текста, помеченных как "без проверки" в ходе проверки орфографии.
- Run() - еще один очень важный метод. Позволяет запустить процедуру/макрос из открытого шаблона/документа и передать ей параметры.
- ScreenRefresh() - обновить окно приложения. Обычно используется после того, как автоматическое обновление было отключено при помощи свойства ScreenUpdating.
- ShowClipboard() - показать панель буфера обмена Word (если вы работаете с несколькими буферами).
Остальные методы относятся к работе протокола DDE, преобразованию различных единиц измерений и т.п.
У объекта Application множество событий - открытие/закрытие/сохранение/печать документа, щелчки мышью, активизация, выход из приложения и т.п. Назначение событий понятно из их названий, поэтому они здесь рассматриваться не будут. Единственное, что следует еще раз отметить - события объекта Application по умолчанию не показываются в редакторе Visual Basic. Чтобы они появились, в раздел Declarations нужно поместить следующую строку:
Public WithEvents App As Word.Application
В этом случае в списке объектов в окне редактора кода для форм появится объект App со всеми необходимыми событиями.
| |
 |
|